home *** CD-ROM | disk | FTP | other *** search
- 10 CLEAR,,,,,100000:DEFINT A-Z:DEF FONT"システム 12ドット"
- 20 SCREEN 2:SCREEN@0:CONSOLE 0,24,0:COLOR 7,0,7,4:CLS:BLB_RESO_X=1024:BLB_RESO_Y=768
- 30 PALETTE 1,[112,32,176]:PALETTE 6,[192,192,192]:PALETTE 7,[112,112,112]:PALETTE 8,[32,32,32]
- 32 PALETTE 9,[176,128,224]:PALETTE 15,[255,255,255]:LINE(0,0)-(1023,767),PSET,%6,BF
- 50 LENGTH=60:SEL=95:TITLE$="項目セレクタ":DIM BLB_MEM%(78000),SEL$(SEL)
- 60 FOR I=0 TO SEL:SEL$(I)=STRING$(LENGTH,CHR$(I+32)):NEXT
- 100 GOSUB *BLB_SELECTOR:PRINT SEL:END
- 60400 '------------------- マウスカーソル形状設定 ver 1.60 一画面モード専用 --------------------------
- 60401 '入力 mousepat = マウスパターン番号
- 60402 ' (0=通常 1=時計 2=鉛筆 3=手 4=毛抜き 5=スポイト 6=指 7=筆 8=カッター)
- 60403 ' ( 負数はアイコン番号(絶対値)。絵柄については TOWNS GEARディクショナリ参照)
- 60404 ' ( ただし、負数を指定したときは読み取り位置の補正は行われない)
- 60405 *BLB_MOUSEPAT
- 60406 IF BLB_MOUSEPAT%=0 THEN DIM BLB_MA&(31),BLB_MD&(31):MOUSE 0:MOUSE 1,320,240,0:BLB_MOUSEPAT%=1
- 60407 MOUSE 3,0,INP(&H3B06):MOUSE 3,1,INP(&H3B06)
- 60408 IF MOUSEPAT<0 THEN *BLB_MOUSEPAT2
- 60409 FOR I%=0 TO 31:BLB_MA&(I%)=PEEK([264]&H2D080+I%*4+MOUSEPAT*256,4)
- 60410 BLB_MD&(I%)=BLB_MA&(I%) OR PEEK([264]&H2D000+MOUSEPAT*256+I%*4,4) XOR -1
- 60411 NEXT:MOUSE 1,,,1
- 60412 MOUSE 6,0,BLB_MA&,BLB_MD&,ASC(MID$("1?1:21111",MOUSEPAT+1))-48,ASC(MID$("1?1:L111N",MOUSEPAT+1))-48:RETURN
- 60413 *BLB_MOUSEPAT2
- 60414 FOR I%=0 TO 31:BLB_MA&(I%)=PEEK([264]&H27F80+I%*4-MOUSEPAT*256,4)
- 60415 BLB_MD&(I%)=(BLB_MA&(I%)XOR-1)AND(PEEK([264]&H27F00-MOUSEPAT*256+I%*4,4)XOR-1)
- 60416 NEXT:MOUSE 1,,,1:MOUSE 6,0,BLB_MA&,BLB_MD&,15,15:RETURN
- 61800 '-------------------------- 項目選択ルーチン version 1.12 --------------------------------------
- 61801 '入力 LENGTH = 文字列の長さ
- 61802 ' SEL = 項目数
- 61803 ' SEL$(n) = 表示する文字列
- 61804 ' TITLE$ = タイトル
- 61805 '出力 SEL = 項目番号(=0,1,2,・・・) 負数のとき未選択
- 61806 '変数 A%,B%,C%,D%,I%,J%,BLB_H%,BLB_MX%,BLB_MY%,BLB_M%,BLB_DX%,BLB_DY%,BLB_W%,BLB_T%
- 61807 *BLB_SELECTOR
- 61808 BLB_W%=LENGTH*6+40:BLB_DX%=320-BLB_W%\2:BLB_DY%=155:MOUSEPAT=0:GOSUB *BLB_MOUSEPAT
- 61809 MOUSE 1,,,0:GET@A(BLB_DX%,BLB_DY%)-(BLB_DX%+BLB_W%,BLB_DY%+170),BLB_MEM%
- 61810 LINE(BLB_DX%,BLB_DY%)-STEP(BLB_W%,170),PSET,%8,BF,7
- 61811 LINE(BLB_DX%,BLB_DY%)-STEP(BLB_W%,16),PSET,%8,BF,%9
- 61812 LINE(BLB_DX%,BLB_DY%)-STEP(32+LEN(TITLE$)*6,16),PSET,%8,BF
- 61813 SYMBOL(BLB_DX%+22,BLB_DY%+3),TITLE$,.75!,.75!,7
- 61814 LINE(BLB_DX%+2,BLB_DY%+2)-STEP(12,12),PSET,7,BF,%6
- 61815 LINE(BLB_DX%+2,BLB_DY%+2)-STEP(12,12),PSET,7:LINE(BLB_DX%+2,BLB_DY%+14)-STEP(12,-12),PSET,7
- 61816 LINE(BLB_DX%+BLB_W%-2,BLB_DY%)-STEP(1,170),PSET,%8,B
- 61817 LINE(BLB_DX%,BLB_DY%+169)-STEP(BLB_W%,0),PSET,%8
- 61818 LINE(BLB_DX%+3,BLB_DY%+20)-STEP(LENGTH*6+13,127),PSET,%8,B:A%=BLB_DX%+BLB_W%-21
- 61819 LINE(A%,BLB_DY%+36)-STEP(16,95),PSET,%8,B
- 61820 LINE(A%,BLB_DY%+20)-STEP(16,14),PSET,%8,B:SYMBOL(A%+3,BLB_DY%+21),"▲",.75!,.75!,%8
- 61821 LINE(A%,BLB_DY%+133)-STEP(16,14),PSET,%8,B:SYMBOL(A%+3,BLB_DY%+134),"▼",.75!,.75!,%8
- 61822 FOR I%=1 TO 2:CONNECT(BLB_DX%+BLB_W%-40*I%-1,BLB_DY%+150)-STEP(34,0)-STEP(1,1)-STEP(0,14)-STEP(-1,1)-STEP(-34,0)-STEP(-1,-1)-STEP(0,-14),%8
- 61823 SYMBOL(BLB_DX%+BLB_W%-40*I%+5,BLB_DY%+152),MID$("取消選択",I%*4-3,4),.75!,.75!,%8:NEXT
- 61824 BLB_H%=0:BLB_M%=-1:GOSUB *BLB_SEL_PUTSTR:MOUSE 1,,,1:WHILE INKEY$<>"":WEND
- 61825 *BLB_SEL_MAIN
- 61826 WAIT 1:IF BLB_T%<150 THEN BLB_T%=BLB_T%+1
- 61827 A%=ASC(INKEY$+" "):IF A%=24 THEN SEL=-1:GOTO *BLB_SEL_END
- 61828 IF A%=13 AND BLB_M%>=0 THEN SEL=BLB_M%:GOTO *BLB_SEL_END
- 61829 IF MOUSE(2,0)=0 THEN *BLB_SEL_MAIN ELSE BLB_MX%=MOUSE(0)-BLB_DX%:BLB_MY%=MOUSE(1)-BLB_DY%
- 61830 IF BLB_MX%<0 OR BLB_MY%<0 OR BLB_MX%>BLB_W% OR BLB_MY%>170 THEN *BLB_SEL_MAIN
- 61831 IF BLB_MX%>1 AND BLB_MX%<15 AND BLB_MY%>1 AND BLB_MY%<15 THEN *BLB_SEL_EXIT
- 61832 IF BLB_MX%>4 AND BLB_MX%<BLB_W%-24 AND BLB_MY%>20 AND BLB_MY%<146 THEN *BLB_SEL_MARK
- 61833 IF BLB_MX%>BLB_W%-22 AND BLB_MX%<BLB_W%- 4 AND BLB_MY%> 20 AND BLB_MY%< 34 THEN *BLB_SEL_UPDOWN
- 61834 IF BLB_MX%>BLB_W%-22 AND BLB_MX%<BLB_W%- 4 AND BLB_MY%>133 AND BLB_MY%<147 THEN *BLB_SEL_UPDOWN
- 61835 IF BLB_MX%>BLB_W%-42 AND BLB_MX%<BLB_W%- 6 AND BLB_MY%>149 AND BLB_MY%<165 THEN *BLB_SEL_YESNO
- 61836 IF BLB_MX%>BLB_W%-82 AND BLB_MX%<BLB_W%-46 AND BLB_MY%>149 AND BLB_MY%<165 THEN *BLB_SEL_YESNO
- 61837 IF BLB_MX%>BLB_W%-22 AND BLB_MX%<BLB_W%- 4 AND BLB_MY%> 35 AND BLB_MY%<132 AND SEL>8 THEN *BLB_SEL_BAR
- 61838 IF BLB_MY%<16 THEN *BLB_SEL_MOVE
- 61839 GOTO *BLB_SEL_MAIN
- 61840 *BLB_SEL_YESNO
- 61841 J%=1+(MOUSE(4,0)-BLB_DX%>BLB_W%-42):B%=0
- 61842 WHILE MOUSE(2,0):BLB_MX%=MOUSE(0)-BLB_DX%+J%*40:BLB_MY%=MOUSE(1)-BLB_DY%
- 61843 A%=(BLB_MX%>BLB_W%-42)*(BLB_MX%<BLB_W%-6)*(BLB_MY%>149)*(BLB_MY%<165)
- 61844 IF A%<>B% THEN LINE(BLB_DX%+BLB_W%-40*J%-41,BLB_DY%+151)-STEP(34,14),XOR,%7,BF:B%=A%
- 61845 WEND:IF B%=0 THEN *BLB_SEL_MAIN
- 61846 LINE(BLB_DX%+BLB_W%-40*J%-41,BLB_DY%+151)-STEP(34,14),XOR,%7,BF
- 61847 IF J%=0 THEN SEL=-1 ELSE IF BLB_M%<>-1 THEN SEL=BLB_M% ELSE *BLB_SEL_MAIN
- 61848 GOTO *BLB_SEL_END
- 61849 *BLB_SEL_EXIT
- 61850 B%=0:WHILE MOUSE(2,0):BLB_MX%=MOUSE(0)-BLB_DX%:BLB_MY%=MOUSE(1)-BLB_DY%
- 61851 A%=(BLB_MX%>1)*(BLB_MY%>1)*(BLB_MX%<15)*(BLB_MY%<15)
- 61852 IF A%<>B% THEN LINE(BLB_DX%+2,BLB_DY%+2)-STEP(12,12),XOR,%7,BF:B%=A%
- 61853 WEND:IF B%=0 THEN *BLB_SEL_MAIN ELSE SEL=-1:GOTO *BLB_SEL_END
- 61854 *BLB_SEL_MOVE
- 61855 MOUSEPAT=3:GOSUB *BLB_MOUSEPAT:C%=BLB_MX%:D%=BLB_MY%:MOUSE 4,C%,D%,BLB_RESO_X-1-BLB_W%+C%,BLB_RESO_Y-171+D%
- 61856 LINE(BLB_DX%,BLB_DY%)-STEP(BLB_W%,170),XOR,%7,B
- 61857 A%=BLB_DX%:B%=BLB_DY%:FOR I%=0 TO 1:I%=1+MOUSE(2,0):BLB_MX%=MOUSE(0)-C%:BLB_MY%=MOUSE(1)-D%
- 61858 IF A%<>BLB_MX% OR B%<>BLB_MY% THEN LINE(A%,B%)-STEP(BLB_W%,170),XOR,%7,B:LINE(BLB_MX%,BLB_MY%)-STEP(BLB_W%,170),XOR,%7,B
- 61859 A%=BLB_MX%:B%=BLB_MY%:NEXT:MOUSE 4,0,0,BLB_RESO_X-1,BLB_RESO_Y-1:LINE(BLB_MX%,BLB_MY%)-STEP(BLB_W%,170),XOR,%7,B
- 61860 MOUSEPAT=0:GOSUB *BLB_MOUSEPAT:IF BLB_DX%=BLB_MX% AND BLB_DY%=BLB_MY% THEN *BLB_SEL_MAIN
- 61861 GET@A(BLB_DX%,BLB_DY%)-(BLB_DX%+BLB_W%,BLB_DY%+170),BLB_MEM%,39000
- 61862 PUT@A(BLB_DX%,BLB_DY%)-(BLB_DX%+BLB_W%,BLB_DY%+170),BLB_MEM%
- 61863 GET@A(BLB_MX%,BLB_MY%)-(BLB_MX%+BLB_W%,BLB_MY%+170),BLB_MEM%
- 61864 PUT@A(BLB_MX%,BLB_MY%)-(BLB_MX%+BLB_W%,BLB_MY%+170),BLB_MEM%,,,,,39000
- 61865 BLB_DX%=BLB_MX%:BLB_DY%=BLB_MY%:GOTO *BLB_SEL_MAIN
- 61866 *BLB_SEL_UPDOWN
- 61867 J%=-(MOUSE(5,0)-BLB_DY%>100):B%=0
- 61868 WHILE MOUSE(2,0):BLB_MX%=MOUSE(0)-BLB_DX%:BLB_MY%=MOUSE(1)-BLB_DY%-J%*113
- 61869 A%=(BLB_MX%>BLB_W%-22)*(BLB_MX%<BLB_W%-4)*(BLB_MY%>20)*(BLB_MY%<34)
- 61870 IF A%<>B% THEN LINE(BLB_DX%+BLB_W%-20,BLB_DY%+21+J%*113)-STEP(14,12),XOR,%7,BF:B%=A%
- 61871 IF A%=1 AND ((BLB_H%+8<SEL AND J%=1) OR (BLB_H%>0 AND J%=0)) THEN A%=J%*2-1:BLB_H%=BLB_H%+A%:GOSUB *BLB_SEL_SCROLL
- 61872 WEND:IF B%=1 THEN LINE(BLB_DX%+BLB_W%-20,BLB_DY%+21+J%*113)-STEP(14,12),XOR,%7,BF
- 61873 GOTO *BLB_SEL_MAIN
- 61874 *BLB_SEL_BAR
- 61875 MOUSE 4,BLB_DX%+BLB_W%-21,BLB_DY%+36,BLB_DX%+BLB_W%-5,BLB_DY%+130
- 61876 D%=MOUSE(5,0)-BLB_DY%-36-BLB_H%*92/(SEL+1)
- 61877 WHILE MOUSE(2,0)
- 61878 IF 36+BLB_H%*93/(SEL+1)<BLB_MY% AND 38+BLB_H%*93/(SEL+1)+837/(SEL+1)>BLB_MY% THEN
- 61879 WHILE MOUSE(2,0):A%=(MOUSE(1)-BLB_DY%-36-D%)*(SEL+1)/92
- 61880 IF A%<0 THEN A%=0 ELSE IF A%>SEL-8 THEN A%=SEL-8
- 61881 IF A%<>BLB_H% THEN
- 61882 B%=(A%-BLB_H%):BLB_H%=A%:MOUSE 1,,,0:GOSUB *BLB_SEL_PUTBAR
- 61883 IF ABS(B%)>8 THEN GOSUB *BLB_SEL_PUTSTR ELSE A%=B%:GOSUB *BLB_SEL_SCROLL
- 61884 MOUSE 1,,,1
- 61885 ENDIF
- 61886 WEND
- 61887 ELSE
- 61888 A%=BLB_H%+SGN(MOUSE(1)-BLB_DY%-36-BLB_H%*93/(SEL+1))*8
- 61889 IF A%<0 THEN A%=0 ELSE IF A%>SEL-8 THEN A%=SEL-8
- 61890 IF A%<>BLB_H% THEN MOUSE 1,,,0:BLB_H%=A%:GOSUB *BLB_SEL_PUTSTR:MOUSE 1,,,1
- 61891 ENDIF
- 61892 BLB_MY%=MOUSE(1)-BLB_DY%:D%=BLB_MY%-36-BLB_H%*92/(SEL+1)
- 61893 WEND:MOUSE 4,0,0,BLB_RESO_X-1,BLB_RESO_Y-1:GOTO *BLB_SEL_MAIN
- 61894 *BLB_SEL_MARK
- 61895 IF MOUSE(2,0)=0 THEN *BLB_SEL_MAIN
- 61896 A%=MOUSE(1)-BLB_DY%-21:BLB_MX%=MOUSE(0)-BLB_DX%
- 61897 IF BLB_MX%<4 OR BLB_MX%>15+LENGTH*6 OR A%<0 OR A%>125 OR A%>SEL*14+13 THEN A%=-1 ELSE A%=A%\14
- 61898 IF A%<0 THEN
- 61899 IF BLB_M%>=BLB_H% AND BLB_M%<BLB_H%+9 THEN GOSUB *BLB_SEL_PUTMARK:BLB_M%=-1
- 61900 GOTO *BLB_SEL_MARK
- 61901 ENDIF
- 61902 IF BLB_M%<>A%+BLB_H% THEN
- 61903 IF BLB_M%>=BLB_H% AND BLB_M%<BLB_H%+9 THEN GOSUB *BLB_SEL_PUTMARK
- 61904 BLB_M%=A%+BLB_H%:GOSUB *BLB_SEL_PUTMARK:BLB_T%=0
- 61905 ENDIF
- 61906 IF BLB_T%>0 AND BLB_T%<INP(&H3B04)*25/32 THEN SEL=BLB_M%:GOTO *BLB_SEL_END
- 61907 BLB_T%=0:GOTO *BLB_SEL_MARK
- 61908 *BLB_SEL_PUTMARK
- 61909 LINE(BLB_DX%+4,BLB_DY%+21+(BLB_M%-BLB_H%)*14)-STEP(LENGTH*6+11,13),XOR,%7,BF:RETURN
- 61910 *BLB_SEL_PUTSTR
- 61911 FOR I%=0 TO 8:IF SEL>=I%+BLB_H% THEN GOSUB *BLB_SEL_PUT1STR
- 61912 NEXT:GOSUB *BLB_SEL_PUTBAR:RETURN
- 61913 *BLB_SEL_PUT1STR
- 61914 LINE(BLB_DX%+4,BLB_DY%+21+I%*14)-STEP(LENGTH*6+11,13),PSET,%15+(BLB_M%=I%+BLB_H%)*7,BF
- 61915 SYMBOL(BLB_DX%+10,BLB_DY%+22+14*I%),SEL$(I%+BLB_H%),.75!,.75!,%8-(BLB_M%=I%+BLB_H%)*7:RETURN
- 61916 *BLB_SEL_PUTBAR
- 61917 IF SEL<9 THEN LINE(BLB_DX%+BLB_W%-20,BLB_DY%+37)-STEP(14,93),PSET,%8,BF,7:RETURN
- 61918 LINE(BLB_DX%+BLB_W%-21,BLB_DY%+36)-STEP(16,BLB_H%*93/(SEL+1)+1),PSET,%8,BF,%9
- 61919 LINE STEP(-1,0)-STEP(-14,837/(SEL+1)),PSET,%8,BF,7
- 61920 LINE STEP(-1,0)-(BLB_DX%+BLB_W%-5,BLB_DY%+131),PSET,%8,BF,%9:RETURN
- 61921 *BLB_SEL_SCROLL
- 61922 MOUSE 1,,,0
- 61923 IF A%>0 THEN
- 61924 GET@A(BLB_DX%+4,BLB_DY%+21+14*A%)-(BLB_DX%+BLB_W%-25,BLB_DY%+146),BLB_MEM%,39000
- 61925 PUT@A(BLB_DX%+4,BLB_DY%+21)-(BLB_DX%+BLB_W%-25,BLB_DY%+146-14*A%),BLB_MEM%,,,,,39000
- 61926 FOR I%=9-A% TO 8:GOSUB *BLB_SEL_PUT1STR:NEXT
- 61927 ELSE IF A%<0 THEN
- 61928 GET@A(BLB_DX%+4,BLB_DY%+21)-(BLB_DX%+BLB_W%-25,BLB_DY%+146-14*A%),BLB_MEM%,39000
- 61929 PUT@A(BLB_DX%+4,BLB_DY%+21-14*A%)-(BLB_DX%+BLB_W%-25,BLB_DY%+146),BLB_MEM%,,,,,39000
- 61930 FOR I%=0 TO -A%-1:GOSUB *BLB_SEL_PUT1STR:NEXT
- 61931 ENDIF
- 61932 GOSUB *BLB_SEL_PUTBAR:MOUSE 1,,,1:RETURN
- 61933 *BLB_SEL_END:PUT@A(BLB_DX%,BLB_DY%)-(BLB_DX%+BLB_W%,BLB_DY%+170),BLB_MEM%:RETURN
-